অ্যাপাচি পিগ (Apache Pig) একটি উচ্চ স্তরের ডেটা প্রসেসিং প্ল্যাটফর্ম যা হ্যাডুপ (Hadoop) ইকোসিস্টেমে ডেটা ট্রান্সফরমেশন এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। পিগে ডেটা টাইপ কাস্টিং (Data Type Casting) একটি গুরুত্বপূর্ণ ধারণা, কারণ এটি বিভিন্ন ধরনের ডেটা টাইপকে একে অপরের মধ্যে রূপান্তর করতে সহায়তা করে। পিগে INT, LONG, FLOAT, এবং DOUBLE প্রভৃতি ডেটা টাইপের মধ্যে কাস্টিং করা প্রয়োজন হতে পারে যখন বিভিন্ন ধরণের ডেটার উপর অপারেশন বা গণনা করতে হয়।
এই টিউটোরিয়ালে, আমরা INT, LONG, FLOAT, এবং DOUBLE ডেটা টাইপের মধ্যে কাস্টিং এর বিভিন্ন কৌশল নিয়ে আলোচনা করব এবং কিভাবে এই কাস্টিং করতে হয় তা দেখাবো।
পিগে ডেটা টাইপ কাস্টিং করার জন্য (type) কাস্টিং ফাংশন ব্যবহার করা হয়, যা পিগ স্ক্রিপ্টে একটি কলাম বা মানকে নির্দিষ্ট ডেটা টাইপে রূপান্তর করে।
CAST(column_name AS data_type)
এখানে:
INT
, LONG
, FLOAT
, DOUBLE
ইত্যাদি)।INT ডেটা টাইপ হল একটি পূর্ণসংখ্যা (whole number) যা সাধারণত ৪ বাইটের (32-বিট) ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। পিগে যদি কোনো ফিল্ডে পূর্ণসংখ্যা (integer) রাখতে চান, তবে তা INT
টাইপে কাস্ট করা যায়।
data = LOAD 'data.txt' USING PigStorage(',') AS (id:int, name:chararray);
int_value = FOREACH data GENERATE (int) id;
DUMP int_value;
এখানে, id
কলামটি INT টাইপে কাস্ট করা হচ্ছে।
LONG টাইপ একটি বড় পূর্ণসংখ্যা যা ৮ বাইটের (64-বিট) ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। যখন সংখ্যা খুব বড় হয়, তখন এটি LONG টাইপে কাস্ট করা হয়।
data = LOAD 'data.txt' USING PigStorage(',') AS (id:long, name:chararray);
long_value = FOREACH data GENERATE (long) id;
DUMP long_value;
এখানে, id
কলামটি LONG টাইপে কাস্ট করা হচ্ছে। এটি বড় সংখ্যা সংরক্ষণে সহায়তা করে।
FLOAT টাইপ হল একটি দশমিক সংখ্যা (floating-point number) যা ৪ বাইটের (32-বিট) ফ্লোটিং পয়েন্ট সংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়। এটি সাধারণত এমন সংখ্যা সঞ্চয় করতে ব্যবহার হয় যা দশমিক স্থান ধারণ করে।
data = LOAD 'data.txt' USING PigStorage(',') AS (price:float, name:chararray);
float_value = FOREACH data GENERATE (float) price;
DUMP float_value;
এখানে, price
কলামটি FLOAT টাইপে কাস্ট করা হচ্ছে। এটি দশমিক সংখ্যা ধারণ করতে ব্যবহৃত হবে।
DOUBLE টাইপ হলো ফ্লোটিং পয়েন্ট সংখ্যা যা ৮ বাইটের (64-বিট) ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। এটি FLOAT এর তুলনায় আরও বেশি সঠিকতা এবং বৃহত্তর মান ধারণ করতে পারে।
data = LOAD 'data.txt' USING PigStorage(',') AS (price:double, name:chararray);
double_value = FOREACH data GENERATE (double) price;
DUMP double_value;
এখানে, price
কলামটি DOUBLE টাইপে কাস্ট করা হচ্ছে। এটি বড় বা উচ্চতর সঠিকতা প্রয়োজন এমন সংখ্যার জন্য ব্যবহৃত হয়।
ডেটা টাইপ | সাইজ | ব্যবহৃত ক্ষেত্রে | সাধারণ পরিসীমা |
---|---|---|---|
INT | ৪ বাইট (32-বিট) | ছোট পূর্ণসংখ্যা, সাধারণ গণনা, সাধারণ ব্যবহারের জন্য | -2,147,483,648 to 2,147,483,647 |
LONG | ৮ বাইট (64-বিট) | বড় পূর্ণসংখ্যা, বড় পরিসরের সংখ্যা বা টাইমস্ট্যাম্পের জন্য | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
FLOAT | ৪ বাইট (32-বিট) | দশমিক সংখ্যা, ছোট সংখ্যার জন্য (কম সঠিকতা) | ±3.4×10⁻³⁸ to ±3.4×10³⁸ |
DOUBLE | ৮ বাইট (64-বিট) | বড় দশমিক সংখ্যা, উচ্চ সঠিকতা প্রয়োজন হলে | ±1.7×10⁻³⁰ to ±1.7×10³⁰ |
ডেটা টাইপ কাস্টিং পিগে গুরুত্বপূর্ণ কারণ:
অ্যাপাচি পিগে INT, LONG, FLOAT, এবং DOUBLE ডেটা টাইপের কাস্টিং একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা সঠিক গণনা এবং ডেটা প্রক্রিয়াকরণ নিশ্চিত করে। প্রতিটি ডেটা টাইপের জন্য নির্দিষ্ট ডেটা ব্যবহারের ক্ষেত্রে সঠিক টাইপ নির্বাচন করা উচিত। এই কাস্টিং প্রযুক্তি পিগ স্ক্রিপ্টে সঠিক ডেটা টাইপে রূপান্তর করতে সাহায্য করে, যা সিস্টেমের কর্মক্ষমতা এবং সঠিক ফলাফল প্রদান করতে সহায়ক।
Read more